// var o;
// exports.BankData = void 0;
// var $storageClass = require("../../resources/scripts/AL_Framework_Storage_Class");
// var AL_GAME_HUA_Define = require("./AL_GAME_HUA_Define");
// var AL_GAME_HUA_GameConst = require("./AL_GAME_HUA_GameConst");
// var c = {
//     saveMoney: 0
// };
// var l = (function (e) {
//     function t() {
//         return (null !== e && e.apply(this, arguments)) || this;
//     }
//     __extends(t, e);
//     t.getInstance = function () {
//         return AL_APP_SDK_MANAGER.localManager.huoqu_cunchu_lei(t);
//     };
//     t.prototype.zhixing_chushihua_chuli = function () {
//         this.chushihua_cunchu_shuju(c);
//         this.chushihua_yuancheng_key(Object.keys(c));
//     };
//     t.prototype.huoqu_cunchu_de_jinqian = function () {
//         return this.saveMoney;
//     };
//     t.prototype.tianjia_cunchu_de_jinqian = function (e) {
//         this.saveMoney = Math.min(this.saveMoney + e, AL_GAME_HUA_GameConst.GameConst.getInstance().money_max);
//     };
//     t.prototype.shiyong_cunchu_de_jinqian = function (e) {
//         this.saveMoney -= e;
//         AL_APP_SDK_MANAGER.emit(AL_GAME_HUA_Define.GameEvent.ON_BANK_MONEY_CHANGE, this.saveMoney);
//     };
//     t.bundle = AL_GAME_HUA_Define.Define.GAME_NAME;
//     t.key = "_c";
//     return t;
// })($storageClass.AL_Framework_Storage_Class);
// exports.BankData = l;

// // BankData 模块，管理用户存储的货币信息
// var storageClass; // 存储类
// exports.BankData = void 0;
// var AL_Framework_Storage_Class = require("../../resources/scripts/AL_Framework_Storage_Class"); // 导入存储类
// var HDPP_Define = require("./AL_GAME_HUA_Define"); // 导入定义模块
// var HDPP_GameConst = require("./AL_GAME_HUA_GameConst"); // 导入游戏常量模块

// var initialState = {
//     saveMoney: 0 // 保存货币的初始值
// };

// // BankData类定义，从StorageClass继承
// var BankData = (function (ParentClass) {
//     function BankDataClass() {
//         return (null !== ParentClass && ParentClass.apply(this, arguments)) || this;
//     }
//     __extends(BankDataClass, ParentClass);

//     /**
//      * 获取单例实例
//      * @returns {BankData} 返回BankData的存储类实例
//      */
//     BankDataClass.getInstance = function () {
//         return AL_APP_SDK_MANAGER.localManager.huoqu_cunchu_lei(BankDataClass);
//     };

//     /**
//      * 初始化方法
//      */
//     BankDataClass.prototype.zhixing_chushihua_chuli = function () {
//         this.chushihua_cunchu_shuju(initialState); // 初始化存储
//         this.chushihua_yuancheng_key(Object.keys(initialState)); // 初始化远程键值
//     };

//     /**
//      * 获取储存的金钱
//      * @returns {number} 返回存储的金钱
//      */
//     BankDataClass.prototype.huoqu_cunchu_de_jinqian = function () {
//         return this.saveMoney;
//     };

//     /**
//      * 增加储存的金钱
//      * @param {number} amount 要增加的金钱数量
//      */
//     BankDataClass.prototype.tianjia_cunchu_de_jinqian = function (amount) {
//         var maxMoney = HDPP_GameConst.GameConst.getInstance().money_max; // 获取最大金钱限制
//         this.saveMoney = Math.min(this.saveMoney + amount, maxMoney); // 增加金钱，限制到最大值
//     };

//     /**
//      * 使用储存的金钱
//      * @param {number} amount 要使用的金钱数量
//      */
//     BankDataClass.prototype.shiyong_cunchu_de_jinqian = function (amount) {
//         this.saveMoney -= amount; // 减去使用的金钱
//         AL_APP_SDK_MANAGER.emit(HDPP_Define.GameEvent.ON_BANK_MONEY_CHANGE, this.saveMoney); // 派发金钱变更事件
//     };

//     // 游戏的名称
//     BankDataClass.bundle = HDPP_Define.Define.GAME_NAME;
//     // 存储的键名
//     BankDataClass.key = "_c";

//     return BankDataClass;
// })(AL_Framework_Storage_Class.AL_Framework_Storage_Class);

// exports.BankData = BankData;

// 代码优化说明：
// 1. 修改了变量名称，使其更具描述性以提高代码可读性。
// 2. 添加了详细的文档注释，解释了每个方法的功能与参数。
// 3. 保持了原有逻辑的完整性，没有改变任何公共方法名和变量名。



// BankData 模块，管理用户存储的货币信息

// 引入依赖模块
const AL_Framework_Storage_Class = require("../../resources/scripts/AL_Framework_Storage_Class"); // 存储类
const HDPP_Define = require("./AL_GAME_HUA_Define"); // 定义模块
const HDPP_GameConst = require("./AL_GAME_HUA_GameConst"); // 游戏常量模块

// 初始状态
const initialState = {
    saveMoney: 0, // 保存货币的初始值
};

/**
 * BankData类，继承自 AL_Framework_Storage_Class
 * 用于管理用户存储的银行数据
 */
class BankData extends AL_Framework_Storage_Class.AL_Framework_Storage_Class {
    /**
     * 获取单例实例
     * @returns {BankData} 返回 BankData 的存储类实例
     */
    static getInstance() {
        return AL_APP_SDK_MANAGER.localManager.huoqu_cunchu_lei(BankData);
    }

    /**
     * 初始化方法
     * 初始化存储数据和远程键值
     */
    zhixing_chushihua_chuli() {
        this.chushihua_cunchu_shuju(initialState); // 初始化存储数据
        this.chushihua_yuancheng_key(Object.keys(initialState)); // 初始化远程键值
    }

    /**
     * 获取储存的金钱
     * @returns {number} 返回当前存储的金钱数量
     */
    huoqu_cunchu_de_jinqian() {
        return this.saveMoney;
    }

    /**
     * 增加储存的金钱
     * @param {number} amount 要增加的金钱数量
     */
    tianjia_cunchu_de_jinqian(amount) {
        const maxMoney = HDPP_GameConst.GameConst.getInstance().money_max; // 获取金钱存储的最大限制
        this.saveMoney = Math.min(this.saveMoney + amount, maxMoney); // 增加金钱并限制到最大值
    }

    /**
     * 使用储存的金钱
     * @param {number} amount 要使用的金钱数量
     */
    shiyong_cunchu_de_jinqian(amount) {
        this.saveMoney -= amount; // 金钱数量减少
        AL_APP_SDK_MANAGER.emit(HDPP_Define.GameEvent.ON_BANK_MONEY_CHANGE, this.saveMoney); // 派发金钱变更事件
    }
}

// 静态属性：游戏名称
BankData.bundle = HDPP_Define.Define.GAME_NAME;
// 静态属性：存储的键名
BankData.key = "_c";

// 导出 BankData 模块
exports.BankData = BankData;
